package com.interview.javabasic.Algorithm;/*
@李子宁
Happy,happy everyday!
冲鸭！
*/

public class Hanoitower {

    public static void main(String[] args) {
        hanoitower(5,'A','B','C');

    }

    //汉诺塔，分治算法
    public static void hanoitower(int num,char a,char b,char c){
        //如果只有一个盘
        if (num==1){
            System.out.println("第1个盘 "+a+"->"+c);
        }else {
            /*如果有n>=2情况，总是可以看成两个部分，最下面的盘和其他盘
            *  1）先把最上面的盘A->B,移动过程会使用到C */
            hanoitower(num-1,a,c,b);
            // 2）把最下面的盘A->C
            System.out.println("第"+num + "个盘 " + a + "->" + c);
            //3)把B中的所有盘移动到C，B->C
            hanoitower(num-1,b,a,c);
        }
    }
}
